#include <iostream>
#include <memory>
#include "Udpsesrver.hpp"
#include "MessageRoute.hpp"

void Usage(std::string proc)
{
	std::cout << "Usage:\n\t" << proc << " local_port\n"
			  << std::endl;
}

// ./udpserver port
// 云服务器的port默认都是禁止访问的。云服务器放开端口8080 ~ 8085
int main(int argc, char *argv[])
{
	if (argc != 2)
	{
		Usage(argv[0]);
		exit(USAGE_ERROR);
	}
	EnableScreen();

	// 定义消息转发模块
    MessageRoute route;

	// std::string ip = argv[1];
	uint16_t port = std::stoi(argv[1]);
	// 先搭建服务器
	std::unique_ptr<Udpserver> usr = std::make_unique<Udpserver>(port,
				std::bind(&MessageRoute::Route,&route,
				std::placeholders::_1,std::placeholders::_2,std::placeholders::_3)); // c++14
	// 服务器初始化
	usr->InitServer();
	usr->Start();
	return 0;
}